﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.UI.HelpViewer.View
{
    /// <summary>
    /// Flags used by INewWindowManager::EvaluateNewWindow. 
    /// These values are taken into account in the decision of whether to display a pop-up window.
    /// </summary>
    [Flags]
    public enum UrlContext
    {
        /// <summary>
        /// No information Present
        /// </summary>
        None = 0x0,
        /// <summary>
        /// The page is unloading. This flag is set in response to the onbeforeunload and onunload events. 
        /// Some pages load pop-up windows when you leave them rather than when you enter. This flag is used to identify those situations.
        /// </summary>
        Unloading = 0x1,
        /// <summary>
        /// The call to INewWindowManager::EvaluateNewWindow is the result of a user-initiated action 
        /// (a mouse click or key press). Use this flag in conjunction with the NWMF_FIRST_USERINITED flag 
        /// to determine whether the call is a direct or indirect result of the user-initiated action.
        /// </summary>
        UserInited = 0x2,
        /// <summary>
        /// When NWMF_USERINITED is present, this flag indicates that the call to 
        /// INewWindowManager::EvaluateNewWindow is the first query that results from this user-initiated action. 
        /// Always use this flag in conjunction with NWMF_USERINITED.
        /// </summary>
        UserFirstInited = 0x4,
        /// <summary>
        /// The override key (ALT) was pressed. The override key is used to bypass the pop-up manager—allowing 
        /// all pop-up windows to display—and must be held down at the time that INewWindowManager::EvaluateNewWindow is called. 
        /// </summary>
        OverrideKey = 0x8,
        /// <summary>
        /// The new window attempting to load is the result of a call to the showHelp method. Help is sometimes displayed in a separate window, 
        /// and this flag is valuable in those cases.
        /// </summary>
        ShowHelp = 0x10,
        /// <summary>
        /// The new window is a dialog box that displays HTML content.
        /// </summary>
        HtmlDialog = 0x20,
        /// <summary>
        /// Indicates that the EvaluateNewWindow method is being called through a marshalled Component Object Model (COM) proxy 
        /// from another thread. In this situation, the method should make a decision and return immediately without performing 
        /// blocking operations such as showing modal user interface (UI). Lengthy operations will cause the calling thread to 
        /// appear unresponsive.
        /// </summary>
        FromProxy = 0x40
    }
}
